package com.szx.kaihei.controller;

import com.szx.kaihei.pojo.dto.LoginDto;
import com.szx.kaihei.pojo.vo.UserInfoVo;
import com.szx.kaihei.service.UserService;
import jakarta.validation.constraints.NotNull;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

/**
 * 用户接口
 * @module 游戏找搭子
 */
@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserService userService;

    /**
     * 用户登录
     * 用户登录成功返回jwt
     * @param loginDto 登录请求参数，验证码和密码二选一
     * @return 登录成功返回token
     */
    @PostMapping("/login")
    public String userLogin(@Validated @RequestBody LoginDto loginDto) {
        return userService.userLogin(loginDto);
    }

    /**
     * 用户注册
     * 用户注册成功返回jwt
     * @param loginDto 注册请求参数
     * @return 注册成功返回token
     */
    @PostMapping("/register")
    public String userRegister(@RequestBody LoginDto loginDto) {
        return userService.userRegister(loginDto);
    }

    /**
     * 获取用户信息
     * 根据id获取用户信息
     * @param id 用户id
     * @return 用户信息
     */
    @GetMapping("/users/{id}")
    public UserInfoVo getUserById(@PathVariable Long id){
        return userService.getUserById(id);
    }

    /**
     * 获取用户信息
     * 根据token获取用户信息
     * @return 用户信息
     */
    @GetMapping("/users/token")
    public UserInfoVo getUserByToken(){
        return userService.getUserByToken();
    }



}
